﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VKontakteClient
{
    /// <summary>
    /// Базовый класс для медиаданных
    /// </summary>
    public abstract class MediaData
    {
        /// <summary>
        /// Перегружненное получение хэшкода
        /// </summary>
        public override int GetHashCode()
        {
            return Name.GetHashCode() ^ File.GetHashCode();
        }

        /// <summary>
        /// Перегруженный метод сравнения объектов
        /// </summary>
        public override bool Equals(object obj)
        {
            var X = obj as MediaData;
            if (X == null) return false;
            return X.Name == this.Name && X.File == this.File;
        }

        /// <summary>
        /// Название элемента
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Реальный файл медиа
        /// </summary>
        private Downloadable _file;

        /// <summary>
        /// Файл медиа
        /// </summary>
        public Downloadable File
        {
            get
            {
                if (_file == null) _file = new Downloadable();
                return _file;
            }
            set
            {
                _file = value;
            }
        }
    }
}
